package com.qf.osmuser.user.service;

import com.qf.common.core.dto.BalanceChangeDTO;
import com.qf.osmuser.user.dto.EditUserDTO;
import com.qf.osmuser.user.param.LoginParam;
import com.qf.osmuser.user.vo.LoginVO;
import com.qf.osmuser.user.vo.UserInfoVO;
import org.springframework.web.multipart.MultipartFile;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author GaoQiangLiang
 */
public interface UserService {
    /**
     * 登录方法
     *
     * @param loginParam 登录参数
     * @return 登录结果
     */
    String login(LoginParam loginParam);

    /**
     * 根据用户id获取用户信息
     * @param uid 用户id
     * @return 用户信息
     */
    LoginVO getUserInfo(Integer uid);

    /**
     * 登出方法
     * @param token 登录token
     */
    void logout(String token);

    /**
     * 获取用户信息
     */
    UserInfoVO getInfo();

    /**
     * 修改用户信息
     */
    void update(EditUserDTO editUserDTO);

    String uploadAvatar(MultipartFile file);

    void sign();

    void changeBalance(BalanceChangeDTO balanceChangeDTO);

    List<String> getAvatarsByUserIds(List<Integer> ids);
}
